﻿// -----------------------------------------------------------------------
// <copyright file="IConfigMateOperation.cs" company="">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace BasicFrameworkDemo.BLL
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public interface IConfigMateOperation
    {
        /// <summary>
        /// Sets the app setting value.
        /// </summary>
        /// <param name="needModificationSettings">The need modification settings.</param>
        /// Creator:LiLei
        /// CreationDate:7/14/2012 3:00 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        void SetAppSettingValue(Dictionary<string, string> needModificationSettings);

        /// <summary>
        /// Adds the app settings.
        /// </summary>
        /// <param name="needAddSettings">The need add settings.</param>
        /// Creator:LiLei
        /// CreationDate:7/14/2012 3:00 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        void AddAppSettings(Dictionary<string, string> needAddSettings);

        /// <summary>
        /// filte the config paremeter
        /// </summary>
        /// <param name="configurationParas">The configuration paras.</param>
        /// <returns>filted config items</returns>
        /// Creator:LiLei
        /// CreationDate:7/11/2012 2:02 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        Dictionary<string, string> ConfigFilter(Dictionary<string, string> configurationParas);

        /// <summary>
        /// Gets all config items.
        /// </summary>
        /// <returns></returns>
        /// Creator:LiLei
        /// CreationDate:7/11/2012 3:07 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        Dictionary<string, string> GetAllConfigItems();

        /// <summary>
        /// Gets the specific config item.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        /// Creator:LiLei
        /// CreationDate:7/11/2012 3:08 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        Dictionary<string, string> GetSpecificConfigItem(string key);

        /// <summary>
        /// Removes the items.
        /// </summary>
        /// <param name="keys">The keys.</param>
        /// Creator:LiLei
        /// CreationDate:7/14/2012 5:03 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        void RemoveItems(string[] keys);

        /// <summary>
        /// Exists the specified key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        /// Creator:LiLei
        /// CreationDate:7/14/2012 6:06 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        bool Exist(string key);

        /// <summary>
        /// Exists the specified key.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        /// Creator:LiLei
        /// CreationDate:7/14/2012 6:48 PM
        /// Modify:
        /// ModifyDate:
        /// ----------------------------------------------------------------------------------------
        bool Exist(string key,string value);

    }
}
